home *** CD-ROM | disk | FTP | other *** search
/ Gekkan Dennou Club 147 / Gekkan Dennou Club - 2000.8 Vol. 147 (Japan).7z / Gekkan Dennou Club - 2000.8 Vol. 147 (Japan) (Track 1).bin / tools / ivl / src / dummyc.h < prev    next >
Text File  |  2000-05-17  |  5KB  |  125 lines

  1. #if    !defined(DUMMYC_H_HAS_INCLUDED)
  2. #define    DUMMYC_H_HAS_INCLUDED
  3. /*
  4. *    dummy.x. 汎用ごった煮ライブラリ C版
  5. *
  6. *    1st edition:    from Oct.27,1993    by dummy.x.
  7. *    restruct:    from Jan.28,1994    by dummy.x.
  8. */
  9. #include    <stdio.h>
  10. #include    <conio.h>
  11.  
  12. /* 大域変数宣言 */
  13.     /* あまりユーザに使って欲しくないもの */
  14. extern const char _path_separator_envname[];    /* パス区切り文字を切り替える環境変数名 */
  15.  
  16. /* 関数宣言 */
  17.     /* 文字列処理(標準関数の追加/拡張版みたいな) */
  18.         /* 比較 */
  19. extern int strnicmp(const char *s1p, const char *s2p, size_t len);
  20.         /* 探索 */
  21. extern char *strrpbrk(const char *dstp, const char *srcp);
  22. extern int strchr_lower(const char *strp);
  23. extern int strchr_upper(const char *strp);
  24. extern char *strlast(const char *strp);
  25. extern int strindex(const char *strp, char ch);
  26.         /* 複写 */
  27. extern char *strcpy_brk(char *dstp, const char *srcp, const char *brkchrs);
  28. extern char *strncpy_brk(char *dstp, const char *srcp, const char *brkchrs, size_t len);
  29. extern char *strncpy_term(char *const dstp, const char *srcp, size_t len);
  30. extern char *stpcpy(char *dstp, const char *srcp);
  31. extern char *stpncpy(char *dstp, const char *srcp, size_t len);
  32. extern char *stpcpy_brk(char *dstp, const char *srcp, const char *brkchrs);
  33. extern char *stpncpy_brk(char *dstp, const char *srcp, const char *brkchrs, size_t len);
  34. extern char *stpncpy_term(char *dstp, const char *srcp, size_t len);
  35.         /* 変換 */
  36. extern char *ultohexstr(char *const bufp, unsigned long num, int keta, char blank, int upperf);
  37. extern char *ultodecstr(char *const bufp, unsigned long num, int keta, char blank);
  38. extern char *ltodecstr(char *const bufp, long num, int keta, unsigned long mojis);
  39.         /* 日本語(shiftJIS)考慮 */
  40. extern char *jstrcapitalize(char *strp);
  41. extern int jstrchr_lower(const char *strp);
  42. extern int jstrchr_upper(const char *strp);
  43.     /* メモリ列処理 */
  44. extern void *memdup(void *datp, size_t size);
  45. extern void *memzero(void *const memp, size_t size);
  46.         /* 偶数(実際は4バイト)境界処理 */
  47. extern void *quadmemzero(void *const memp, size_t size);
  48. extern void *quadmemset(void *const memp, int val, size_t size);
  49. extern void *quadmemcpy(void *dstp, const void *srcp, size_t size);
  50. extern void *quadmemzero_sizelimit(void *const memp, size_t size);
  51. extern void *quadmemset_sizelimit(void *const memp, int val, size_t size);
  52.     /* 文字列検査/加工 */
  53. extern int is_option(const char *argp);
  54. extern int is_csym_str(const char *strp);
  55. extern char *skip_white(const char *strp);
  56. extern char *skip_tailed_white(const char *const strp);
  57. extern char *cut_headed_white(char *strp);
  58. extern char *cut_tailed_white(char *const strp);
  59. extern void cut_kaigyo(char *strp);
  60.     /* タイトル付きメッセージ表示 */
  61. extern int ttlprintf(const char *form, ...);
  62. extern void set_ttlprintf_values(FILE *fp, const char *pnamep);
  63.     /* 状況表示段階制御付きメッセージ表示 */
  64. extern int stsprintf(int lev, const char *form, ...);
  65. extern int stsfprintf(FILE *fp, int lev, const char *form, ...);
  66. extern void set_stsprintf_level(int level);
  67.     /* ED.X 形式タグメッセージ表示 */
  68. extern int tagprintf(const char *fnamp, size_t line, const char *formp, ...);
  69. extern void set_tagprintf_values(FILE *fp, int keta);
  70.     /* その他諸々 */
  71.         /* 画面回り */
  72. extern long set_screen_priority(long prichrs);
  73. extern void clear_text_multi_hlines(int sy, int ey);
  74. extern void clear_text_screen(void);
  75.         /* 入力関係 */
  76. extern int is_dbl_click(const int lr, const int tm);
  77. extern void kflush(void);
  78.  
  79. /* 関数偽名定義 */
  80. #define    strncmpi    strnicmp
  81.  
  82. /* 関数偽装マクロ */
  83.     /* 1桁の10進数値を1文字の10進数文字に変換 */
  84. #define    numtodecchar(num)    ((num) + '0')
  85.  
  86. /* インライン展開関数 */
  87.  
  88. /* キーバッファをクリアする
  89. */
  90. static __inline__
  91. void kflush_inline(void)
  92. {
  93.     __asm __volatile (
  94.         "move.w #-1,-(sp)\n\t"
  95.         "dc.w KFLUSH\n\t"
  96.         "addq.l #2,sp\n\t"
  97.         : /* no outputs */
  98.         : /* no inputs */
  99.         : "d0"
  100.     );
  101. }
  102.  
  103. #if    !defined(UNOPEN_DUMMYC)
  104. /* 関数を inline ものに置き換える */
  105.  
  106. #define    kflush    kflush_inline
  107.  
  108. #endif    /* !defined(UNOPEN_DUMMYC) */
  109.  
  110. #if    0
  111. /* 昔の名前を偽名定義 */
  112.     /* errprintf() 関連
  113.     *    しばらくの間はこれでゴマかす。 */
  114.     *    今後コンパイルする全てのソースで、関数名の置き換えを行なっていき、
  115.     *    頃合を見計らってこの定義を削除、
  116.     *    errprintf() という名前に見合った関数を作成する。
  117.     *    その際は「警告メッセージ表示」warnprintf() も平行して作成予定
  118.     */
  119. #define    errprintf        ttlprintf
  120. #define    set_errprintf_values    set_ttlprintf_values
  121.  
  122. #endif
  123.  
  124. #endif    /* !defined(DUMMYC_H_HAS_INCLUDED) */
  125.